// 引入客户端类的头文件
#include "client.hpp"

// 用于显示使用方法的函数
void Usage()
{
    // 打印如何使用程序的信息
    printf("\n\tUsage : ./client ip port[port>1024]\n\n");
}

// 主函数，程序的入口点
int main(int argc, char *argv[])
{
    // 检查命令行参数的个数，如果不是 3 个参数（包括程序名），则显示使用方法并退出
    if (argc != 3)
    {
        Usage();  // 调用 Usage 函数打印用法信息
        exit(-1); // 以错误码 -1 退出程序
    }

    // 将命令行参数中的端口号转换为整数
    int16_t port = std::stoi(argv[2]);

    // 获取命令行参数中的IP地址
    std::string ip(argv[1]);

    // 创建 Client 对象，并传递IP和端口号
    Client tc(ip, port);

    // 初始化客户端（创建套接字）
    tc.Init();

    // 启动客户端，连接到服务器并进入请求处理
    tc.Start();

    // 程序正常退出
    return 0;
}
